﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;

namespace Brain.Photon
{
    /// <summary>
    /// A Particle
    /// </summary>
    public class Particle
    {
        public ParticleEmitter Emitter;

        /// <summary>
        /// The Angular Velocity of this Particle(velocity that changes rotation).
        /// If 2D, the Rotation is on the X
        /// </summary>
        public Vector3 AngularVelocity;

        /// <summary>
        /// The current position of this Particle
        /// </summary>
        public Vector3 Position;

        /// <summary>
        /// The Rotation of this Particle, in Radians
        /// </summary>
        public Vector3 Rotation;

        /// <summary>
        /// The Custom Color of this Particle
        /// </summary>
        public Color Color = Color.White;

        /// <summary>
        /// The Size of the Particle
        /// </summary>
        public float Size = 1;

        /// <summary>
        /// CPU: How much time this Particle is alive - GPU: The Start time of this Particle
        /// </summary>
        public float AliveTime;

        /// <summary>
        /// The Linear Velocity of this Particle(velocity that changes position).
        /// If 2D, the Velocity is only on X and Y
        /// </summary>
        public Vector3 LinearVelocity;

        /// <summary>
        /// The Transform Matrix of this Particle
        /// </summary>
        public Matrix? Transform;

        public object Tag1;

        /// <summary>
        /// Intantiates a new Particle
        /// </summary>
        public Particle()
        {

        }
    }
}
